// pages/login/login.js
import { getCode, login } from '../../api/user'
import { setToken } from '../../utils/strorage'
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import store from '../../store/index'
Page({
    /**
     * 页面的初始数据
     */
    data: {
        form: {
            mobile:'',
            code:''
        },
        isShow: true,
        time:5 * 1000,
        mobileError: '',
        codeError: ''
    },
    updateMobile(e) {
        // console.log(e)
        this.setData({
            'form.mobile': e.detail
        })
    },
    updateCode(e) {
        this.setData({
            'form.code': e.detail
        })
    },
    // 手机号输入框失焦
    onMobileBlur() {
        const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
        if (!this.data.form.mobile) {
            this.setData({
                mobileError: '请输入手机号'
            })
            return
        }
        if (!reg.test(this.data.form.mobile)) {
            this.setData({
                mobileError: '手机号格式错误'
            })
            return
        }
    },
    // 验证码输入框失焦
    onCodeBlur() {
        if (!this.data.form.code) {
            this.setData({
                codeError: '请输入验证码'
            })
            return
        }
        if (this.data.form.code.length !==6) {
            this.setData({
                codeError: '验证码为6位数字'
            })
            return
        }
    },
    // 发送验证码
    async onCode() {
        const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
        if (!this.data.form.mobile) {
            this.setData({
                mobileError: '请输入手机号'
            })
            return
        }
        if (!reg.test(this.data.form.mobile)) {
            this.setData({
                mobileError: '手机号格式错误'
            })
            return
        }
        try {
            await getCode(this.data.form)
            this.setData({
                isShow: false
        })
        } catch (error) {
            console.log(error)
        }    
    },
    // 倒计时结束
    onFinish() {
        this.setData({
            isShow: true
        })
    },
    // 登录
    async onLogin() {
        const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
        if (!reg.test(this.data.form.mobile) && this.data.form.code.length !==6) {
            this.setData({
                mobileError: '手机号格式错误',
                codeError: '验证码为6位数字'
            })
            return
        }
        try {
            const res = await login(this.data.form)
            this.setToken(res.data.token)
            setToken(store.token)
            wx.redirectTo({
                url:'/pages/my/my?userMobile=' + this.data.form.mobile
            })
        } catch (error) {
            console.log(error)
        }  
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        createStoreBindings(this, {
            store:store,
            fields:['token'],
            actions:['setToken']
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})